package $1_1basic;

/*
 * 对于布尔类型boolean，永远只有true和false两个值。
 * 布尔运算是一种关系运算，包括以下几类：
 *     比较运算符：>，>=，<，<=，==，!=
 *     与运算 &&
 *     或运算 ||
 *     非运算 !
 *     
 *     关系运算符的优先级从高到低依次是：
 *       !
 *       >，>=，<，<=
 *       ==，!=
 *       &&
 *       ||
 */

public class BooleanClass {

	public static void main(String[] args) {
		/*
		 * 短路运算
		 * 布尔运算的一个重要特点是短路运算。如果一个布尔运算的表达式能提前确定结果，则后续的计算不再执行，直接返回结果。
		 * 因为false && x的结果总是false，无论x是true还是false，因此，与运算在确定第一个值为false后，不再继续计算，而是直接返回false。
		 */
		boolean b = 5 < 3;
        boolean result = b && (5 / 0 > 0);
        System.out.println(result);

        /*
         * 三元运算符 b ? x : y
         * 它根据第一个布尔表达式的结果，分别返回后续两个表达式之一的计算结果。
         * 首先计算b，如果b为true，则只计算x，否则，只计算y。
         * x和y的类型必须相同，因为返回值不是boolean，而是x和y之一。
         */
        
        //判断指定年龄是否是小学生（6～12岁）：
        int age = 7;
        boolean isPrimaryStudent = age > 6 && age <= 12;
        System.out.println(isPrimaryStudent ? "Yes" : "No");
	}

}
